﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Runda.CMS.Common.Utility
{
    public class Enumerator
    {
        #region Dictionary Type
        public enum DictionaryType
        { 
            /// <summary>
            /// 合同属性
            /// </summary>
            [EnumeratorHelper("合同属性")]
            ContractAttribute = 0,
            /// <summary>
            /// 月系数
            /// </summary>
            [EnumeratorHelper("月系数")]
            MothQuotient=2,

            /// <summary>
            /// 核销类型
            /// </summary>
            [EnumeratorHelper("核销类型")]
            VerificationType=3,

            /// <summary>
            /// 配件来源属性
            /// </summary> 
            [EnumeratorHelper("配件来源属性")]
            AccessorySource = 4,

            /// <summary>
            /// 配件收费对象
            /// </summary>
            [EnumeratorHelper("配件收费对象")]
            AccessoryPaymentsObject = 5,

            /// <summary>
            /// 配件收费类型
            /// </summary>
            [EnumeratorHelper("配件收费类型")]
            AccessoryPaymentType=6,

            [EnumeratorHelper("法定节假日")]
            Holiday = 7,
        }
        #endregion

        #region WebSite Error Type

        public enum ErrorType
        {
            /// <summary>
            /// 系统错误
            /// </summary>
            [EnumeratorHelper("系统错误，请与系统管理员联系！")]
            SystemError,
            /// <summary>
            /// 无权限
            /// </summary>
            [EnumeratorHelper("对不起，您无此功能权限！")]
            NoRight,
            /// <summary>
            /// 写日志失败
            /// </summary>
            [EnumeratorHelper("写日志失败！")]
            LogError,
            /// <summary>
            /// Session失效
            /// </summary>
            [EnumeratorHelper("会话状态失效，请重新登陆！")]
            SessionAbandon,
        }

        #endregion

        #region Contract Status

        public enum ContractStatus
        {
            //[EnumeratorHelper("无效")]
            //Invalid = -1,
            [EnumeratorHelper("草稿")]
            Draft =0,
            [EnumeratorHelper("已提交")]
            Submit = 1,
            [EnumeratorHelper("已退回")]
            Back = 2,
            [EnumeratorHelper("已通过")]
            Pass = 3,
            [EnumeratorHelper("已作废")]
            Nullify = 4,
            [EnumeratorHelper("已终止")]
            Abort = 5,
        }

        #endregion

        #region Contract Type

        /// <summary>
        /// 合同类型
        /// </summary>
        public enum ContractType
        { 
            [EnumeratorHelper("销售买断")]
            Sale,
            [EnumeratorHelper("投放")]
            Put,
            [EnumeratorHelper("科研协议")]
            Agreement
        }

        #endregion

        #region 器械类型

        /// <summary>
        /// 器械类型
        /// </summary>
        public enum InstrumentType
        {
            [EnumeratorHelper("机器")]
            Machine = 0,
            [EnumeratorHelper("试剂")]
            Reagents,
            [EnumeratorHelper("耗材")]
            Consumable

        }

        #endregion

        #region Notice Message Type and Status

        public enum NoticeMessageType
        {
            [EnumeratorHelper("私有")]
            Private,
            [EnumeratorHelper("公共")]
            Public
        }

        public enum NoticeMessageStatus
        {
            [EnumeratorHelper("未读")]
            unread,

            [EnumeratorHelper("已读")]
            read
        }

        #endregion

        #region Contract Comment Status

        /// <summary>
        /// 领导填写意见状态
        /// </summary>
        public enum ContractCommentStatus
        {
            [EnumeratorHelper("已选择")]
            Assign,
            [EnumeratorHelper("已提交")]
            Wait,
            [EnumeratorHelper("已填写")]
            Write,
        }

        #endregion

        #region Contract Payment Type
        /// <summary>
        /// 合同付款方式
        /// </summary>
        public enum ContractPaymentType
        {
            [EnumeratorHelper("一次性付款")]
            Disposable,
            [EnumeratorHelper("分期付款")]
            Instalment
        }
        #endregion

        #region 合同其他收入类型
        public enum ContractOthorIncomeType
        {
            /// <summary>
            /// 机器收入
            /// </summary>
            Machine,
            /// <summary>
            /// 维修收入
            /// </summary>
            Maintain,
            /// <summary>
            /// 租金收入
            /// </summary>
            Rent,
        }
        #endregion

        #region 投放合同付款形式
        public enum PutPaymentType
        {
            [EnumeratorHelper("先付")]
            Prepayment,
            [EnumeratorHelper("后付")]
            Afterpayment,
        }
        #endregion

        #region 器械售后服务类型
        public enum SalesService { 
            [EnumeratorHelper("安装")]
            Setup=1,

            [EnumeratorHelper("维修FE")]
            RepairFE,

            [EnumeratorHelper("保养")]
            Maintenance,

            [EnumeratorHelper("装机服务")]
            Training,

            [EnumeratorHelper("升级")]
            Upgrade,

            [EnumeratorHelper("校准")]
            Adjust,

            [EnumeratorHelper("回访")]
            ReturnVisit,

            [EnumeratorHelper("开放系统服务")]
            Commission,
        
            [EnumeratorHelper("应用维护")]
            RepairLS,

            [EnumeratorHelper("学习提高")]
            StudyImprove,

            [EnumeratorHelper("跟做标本")]
            Trace,

            [EnumeratorHelper("场地查看")]
            PlaceView,

            [EnumeratorHelper("资料编撰与审校")]
            Distribution1= 21,

            [EnumeratorHelper("兄弟部门工作支持")]
            Distribution2 = 22,

            [EnumeratorHelper("科内会")]
            Distribution3 = 23,
            [EnumeratorHelper("学术活动")]
            Distribution4 = 24,
            [EnumeratorHelper("内部培训")]
            Distribution5 = 25,
            [EnumeratorHelper("性能验证")]
            Distribution6 = 26,
            [EnumeratorHelper("恢复仪器")]
            Distribution61 = 30,
            
            [EnumeratorHelper("测试硬件")]
            Distribution7 = 31,
            [EnumeratorHelper("其他")]
            Distribution8 = 32,

            //[EnumeratorHelper("15189性能验证")]
            //Repair15189=13,
            

        }

        public enum GuaranteeType { 
            [EnumeratorHelper("厂家保修")]
            ManufactureMaintain =1,

            [EnumeratorHelper("商业保修")]
            BusinessMaintain,

            [EnumeratorHelper("保修期外")]
            OverMaintain,

            [EnumeratorHelper("保修期限")]
            OnMaintain,
        }

        //服务合同
        public enum ContractServiceType {
            [EnumeratorHelper("全保")]
            All = 1,
            [EnumeratorHelper("保人工")]
            ForLabor,
            [EnumeratorHelper("仅保养")]
            OnlyMaintain,
            [EnumeratorHelper("暂无")]
            None,
        }

        public enum InstrumentStatus {
            [EnumeratorHelper("正常使用")]
            Using = 1,
            [EnumeratorHelper("暂停使用")]
            Suspend,
            [EnumeratorHelper("撤回")]
            Retract,
            [EnumeratorHelper("调试培训中")]
            Maintain,
            [EnumeratorHelper("停用")]
            Disable,
            [EnumeratorHelper("停止售后")]
            StopMaintain,
        }
        #endregion
        #region 配件入库方式
        public enum StorckInType
        {
            [EnumeratorHelper("保内索赔")]
            PaulIn=0,
            [EnumeratorHelper("厂家采购")]
            Purchase,
            [EnumeratorHelper("外部采购")]
            PurchaseOut,
            [EnumeratorHelper("其他入库")]
            Other,
        }
        #endregion


        #region 订单状态
        public enum OrderStatus
        {
            [EnumeratorHelper("待配货")]
            NotOper = 1,
            [EnumeratorHelper("待发货")]
            RequestShiping,
            [EnumeratorHelper("已发货")]
            Shiping,
            [EnumeratorHelper("已收货")]
            ShipingComplete,
        }
        #endregion
        #region
        public enum AccessoryStatusInStock
        {
            [EnumeratorHelper("入库")]
            InStock,
            [EnumeratorHelper("申领")]
            OutStock,

            [EnumeratorHelper("投入使用")]
            OnUsing,
        }
        #endregion

        #region 系统
        public enum SysRole
        {
            [EnumeratorHelper("产品专员")]
            Producter = 100,

            [EnumeratorHelper("产品经理")]
            ProductManager = 101,
        }
        #endregion
        #region 配件相关
        public enum AccessoryReplacementBelongto
        { 
            [EnumeratorHelper("保修内")]
            WithIn = 0,

            [EnumeratorHelper("保修外")]
            WithOut = 1,
        }
        /// <summary>
        /// 保修配件审批状态
        /// </summary>
        public enum AccessoryReplacementCheckStatus
        { 
            /// <summary>
            /// 已保存
            /// </summary>
            [EnumeratorHelper("已保存")]
            Saved = 0,
            /// <summary>
            /// 已提交
            /// </summary>
            [EnumeratorHelper("已提交")]
            Submit = 1,
            /// <summary>
            /// 已下定
            /// </summary>
            /// 
            [EnumeratorHelper("已核查")]
            Checked = 2,

            [EnumeratorHelper("已下定")]
            Approved = 3
        }
        #endregion

        #region 装机信息
        /// <summary>
        /// 安装信息状态
        /// </summary>
        public enum InstrumentAssmblyStatus
        {
            /// <summary>
            /// 已保存
            /// </summary>
            /// <summary>
            /// 已提交
            /// </summary>
            [EnumeratorHelper("已提交")]
            Submit = 1,
            /// <summary>
            /// 已检查
            /// </summary>
            [EnumeratorHelper("已检查")]
            Checked = 2,

             /// <summary>
            /// 已审核
            /// </summary>
            [EnumeratorHelper("已审核")]
            Approved = 3
        }

        #endregion
    }
}
